package com.neouton.common.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.encrypt.typehandler.Encrypt;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * reimburse_fee_main
 * @author zy
 * @date 2022-12-07 18:26
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public class FeeMainVO implements Serializable {
    /**
     * 主键
     */
    private Integer reimburseId;

    /**
     * 报销单号
     */
    private String reimburseNo;

    /**
     * 报销类型; 日常报销，项目报销
     */
    private String reimburseType;

    /**
     * 报销主题
     */
    private String reimburseSubject;

    /**
     * 申请人域账号
     */
    private String applicant;
    private List<String> applicantList;

    /**
     * 申请人姓名
     */
    private String applicantName;

    /**
     * 申请日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern = "yyyy-MM-dd")
    private Date applyDate;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 项目id
     */
    private Integer projectId;

    /**
     * 客户/供应商
     */
    private String customer;

    /**
     * 报销金额
     */
    private Encrypt reimburseMoney;

    /**
     * 数据状态；
     * 1-草稿
     * 2-审批中
     * 3-通过
     * 4-驳回
     */
    private Integer state;
    private List<Integer> stateList;

    /**
     * 工作流id
     */
    private Integer processId;

    /**
     * 工作流模板id
     */
    private Integer processTemplateId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人姓名
     */
    private String creatorName;

//    /**
//     * 费用明细集合
//     */
//    private List<FeeDetailVO> reimburseDetail;
//
//    /**
//     * 审批流程节点集合
//     */
//    private List<ProcessApprovalLogVO> processDetail;
//
//    /**
//     * 审批流程日志集合
//     */
//    private List<ProcessApprovalLogVO> logList;
//
//    /**
//     * 上传附件集合
//     */
//    private List<FeeAnnexVO> annexList;

    /**
     * 当前处理人
     */
    private String curHandler;

    /**
     * 是否可撤回标识， true为不可撤回
     */
    private Boolean isRemove;

    /**
     * 数据展示权限
     * 1 - 员工：可查看自己创建或申请的所有数据
     * 2 - 部门主管：可查看自己创建或申请的所有数据，和本部门下员工的非草稿数据
     * 3 - 财务主管：可查看所有非草稿数据
     */
    private Integer dataShowAuth;

    /**
     * 当前登录人域账号
     */
    private String userAccount;

    private String extendStr;

    private Integer extendInt;

    /**
     * 维修单号
     */
    private String relationNumber;

    /**
     * 机会点id
     */
    private Integer chanceId;
    private List<String> relationNumbers;

    private static final long serialVersionUID = 1L;

    private String creator;

    private Date createDateTime;

    private String modifier;

    private Date lastUpdateTime;

    private String sortBy;

    private String sortOrder;

    /**
     * 机会点id集合
     */
    private List<Integer> chanceIdList;

    /**
     * 项目id集合
     */
    private List<Integer> projectIdList;
}
